0 CpxTRS
↳1 NestedDefinedSymbolProof (BOTH BOUNDS(ID, ID), 0 ms)
↳2 CpxTRS
↳3 TrsToWeightedTrsProof (BOTH BOUNDS(ID, ID), 0 ms)
↳4 CpxWeightedTrs
↳5 TypeInferenceProof (BOTH BOUNDS(ID, ID), 5 ms)
↳6 CpxTypedWeightedTrs
↳7 CompletionProof (UPPER BOUND(ID), 0 ms)
↳8 CpxTypedWeightedCompleteTrs
↳9 NarrowingProof (BOTH BOUNDS(ID, ID), 0 ms)
↳10 CpxTypedWeightedCompleteTrs
↳11 CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID), 0 ms)
↳12 CpxRNTS
↳13 SimplificationProof (BOTH BOUNDS(ID, ID), 0 ms)
↳14 CpxRNTS
↳15 CpxRntsAnalysisOrderProof (BOTH BOUNDS(ID, ID), 0 ms)
↳16 CpxRNTS
↳17 IntTrsBoundProof (UPPER BOUND(ID), 526 ms)
↳18 CpxRNTS
↳19 IntTrsBoundProof (UPPER BOUND(ID), 204 ms)
↳20 CpxRNTS
↳21 ResultPropagationProof (UPPER BOUND(ID), 0 ms)
↳22 CpxRNTS
↳23 IntTrsBoundProof (UPPER BOUND(ID), 388 ms)
↳24 CpxRNTS
↳25 IntTrsBoundProof (UPPER BOUND(ID), 399 ms)
↳26 CpxRNTS
↳27 FinalProof (⇔, 0 ms)
↳28 BOUNDS(1, n^1)
not(and(x, y)) → or(not(x), not(y))
not(or(x, y)) → and(not(x), not(y))
and(x, or(y, z)) → or(and(x, y), and(x, z))
and(x, or(y, z)) → or(and(x, y), and(x, z))
not(or(x, y)) → and(not(x), not(y))
and(x, or(y, z)) → or(and(x, y), and(x, z)) [1]
not(or(x, y)) → and(not(x), not(y)) [1]
and(x, or(y, z)) → or(and(x, y), and(x, z)) [1]
not(or(x, y)) → and(not(x), not(y)) [1]
and :: or → or → or or :: or → or → or not :: or → or |
(a) The obligation is a constructor system where every type has a constant constructor,
(b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols:
none
(c) The following functions are completely defined:
not
and
not(v0) → const [0]
and(v0, v1) → const [0]
const
Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules:
The TRS has the following type information:
Rewrite Strategy: INNERMOST |
Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules:
The TRS has the following type information:
Rewrite Strategy: INNERMOST |
const => 0
and(z', z'') -{ 0 }→ 0 :|: v0 >= 0, v1 >= 0, z'' = v1, z' = v0
and(z', z'') -{ 1 }→ 1 + and(x, y) + and(x, z) :|: z >= 0, z' = x, x >= 0, y >= 0, z'' = 1 + y + z
not(z') -{ 3 }→ and(and(not(x'), not(y')), and(not(x''), not(y''))) :|: x' >= 0, z' = 1 + (1 + x' + y') + (1 + x'' + y''), y' >= 0, y'' >= 0, x'' >= 0
not(z') -{ 2 }→ and(and(not(x'), not(y')), 0) :|: x' >= 0, y >= 0, z' = 1 + (1 + x' + y') + y, y' >= 0
not(z') -{ 2 }→ and(0, and(not(x1), not(y1))) :|: y1 >= 0, x1 >= 0, x >= 0, z' = 1 + x + (1 + x1 + y1)
not(z') -{ 1 }→ and(0, 0) :|: z' = 1 + x + y, x >= 0, y >= 0
not(z') -{ 0 }→ 0 :|: v0 >= 0, z' = v0
and(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
and(z', z'') -{ 1 }→ 1 + and(z', y) + and(z', z) :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z
not(z') -{ 3 }→ and(and(not(x'), not(y')), and(not(x''), not(y''))) :|: x' >= 0, z' = 1 + (1 + x' + y') + (1 + x'' + y''), y' >= 0, y'' >= 0, x'' >= 0
not(z') -{ 2 }→ and(and(not(x'), not(y')), 0) :|: x' >= 0, y >= 0, z' = 1 + (1 + x' + y') + y, y' >= 0
not(z') -{ 2 }→ and(0, and(not(x1), not(y1))) :|: y1 >= 0, x1 >= 0, x >= 0, z' = 1 + x + (1 + x1 + y1)
not(z') -{ 1 }→ and(0, 0) :|: z' = 1 + x + y, x >= 0, y >= 0
not(z') -{ 0 }→ 0 :|: z' >= 0
{ and } { not } |
and(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
and(z', z'') -{ 1 }→ 1 + and(z', y) + and(z', z) :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z
not(z') -{ 3 }→ and(and(not(x'), not(y')), and(not(x''), not(y''))) :|: x' >= 0, z' = 1 + (1 + x' + y') + (1 + x'' + y''), y' >= 0, y'' >= 0, x'' >= 0
not(z') -{ 2 }→ and(and(not(x'), not(y')), 0) :|: x' >= 0, y >= 0, z' = 1 + (1 + x' + y') + y, y' >= 0
not(z') -{ 2 }→ and(0, and(not(x1), not(y1))) :|: y1 >= 0, x1 >= 0, x >= 0, z' = 1 + x + (1 + x1 + y1)
not(z') -{ 1 }→ and(0, 0) :|: z' = 1 + x + y, x >= 0, y >= 0
not(z') -{ 0 }→ 0 :|: z' >= 0
and(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
and(z', z'') -{ 1 }→ 1 + and(z', y) + and(z', z) :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z
not(z') -{ 3 }→ and(and(not(x'), not(y')), and(not(x''), not(y''))) :|: x' >= 0, z' = 1 + (1 + x' + y') + (1 + x'' + y''), y' >= 0, y'' >= 0, x'' >= 0
not(z') -{ 2 }→ and(and(not(x'), not(y')), 0) :|: x' >= 0, y >= 0, z' = 1 + (1 + x' + y') + y, y' >= 0
not(z') -{ 2 }→ and(0, and(not(x1), not(y1))) :|: y1 >= 0, x1 >= 0, x >= 0, z' = 1 + x + (1 + x1 + y1)
not(z') -{ 1 }→ and(0, 0) :|: z' = 1 + x + y, x >= 0, y >= 0
not(z') -{ 0 }→ 0 :|: z' >= 0
and: runtime: ?, size: O(n1) [z''] |
and(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
and(z', z'') -{ 1 }→ 1 + and(z', y) + and(z', z) :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z
not(z') -{ 3 }→ and(and(not(x'), not(y')), and(not(x''), not(y''))) :|: x' >= 0, z' = 1 + (1 + x' + y') + (1 + x'' + y''), y' >= 0, y'' >= 0, x'' >= 0
not(z') -{ 2 }→ and(and(not(x'), not(y')), 0) :|: x' >= 0, y >= 0, z' = 1 + (1 + x' + y') + y, y' >= 0
not(z') -{ 2 }→ and(0, and(not(x1), not(y1))) :|: y1 >= 0, x1 >= 0, x >= 0, z' = 1 + x + (1 + x1 + y1)
not(z') -{ 1 }→ and(0, 0) :|: z' = 1 + x + y, x >= 0, y >= 0
not(z') -{ 0 }→ 0 :|: z' >= 0
and: runtime: O(n1) [z''], size: O(n1) [z''] |
and(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
and(z', z'') -{ 1 + y + z }→ 1 + s + s' :|: s >= 0, s <= 1 * y, s' >= 0, s' <= 1 * z, z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z
not(z') -{ 1 }→ s'' :|: s'' >= 0, s'' <= 1 * 0, z' = 1 + x + y, x >= 0, y >= 0
not(z') -{ 3 }→ and(and(not(x'), not(y')), and(not(x''), not(y''))) :|: x' >= 0, z' = 1 + (1 + x' + y') + (1 + x'' + y''), y' >= 0, y'' >= 0, x'' >= 0
not(z') -{ 2 }→ and(and(not(x'), not(y')), 0) :|: x' >= 0, y >= 0, z' = 1 + (1 + x' + y') + y, y' >= 0
not(z') -{ 2 }→ and(0, and(not(x1), not(y1))) :|: y1 >= 0, x1 >= 0, x >= 0, z' = 1 + x + (1 + x1 + y1)
not(z') -{ 0 }→ 0 :|: z' >= 0
and: runtime: O(n1) [z''], size: O(n1) [z''] |
and(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
and(z', z'') -{ 1 + y + z }→ 1 + s + s' :|: s >= 0, s <= 1 * y, s' >= 0, s' <= 1 * z, z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z
not(z') -{ 1 }→ s'' :|: s'' >= 0, s'' <= 1 * 0, z' = 1 + x + y, x >= 0, y >= 0
not(z') -{ 3 }→ and(and(not(x'), not(y')), and(not(x''), not(y''))) :|: x' >= 0, z' = 1 + (1 + x' + y') + (1 + x'' + y''), y' >= 0, y'' >= 0, x'' >= 0
not(z') -{ 2 }→ and(and(not(x'), not(y')), 0) :|: x' >= 0, y >= 0, z' = 1 + (1 + x' + y') + y, y' >= 0
not(z') -{ 2 }→ and(0, and(not(x1), not(y1))) :|: y1 >= 0, x1 >= 0, x >= 0, z' = 1 + x + (1 + x1 + y1)
not(z') -{ 0 }→ 0 :|: z' >= 0
and: runtime: O(n1) [z''], size: O(n1) [z''] not: runtime: ?, size: O(1) [0] |
and(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
and(z', z'') -{ 1 + y + z }→ 1 + s + s' :|: s >= 0, s <= 1 * y, s' >= 0, s' <= 1 * z, z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z
not(z') -{ 1 }→ s'' :|: s'' >= 0, s'' <= 1 * 0, z' = 1 + x + y, x >= 0, y >= 0
not(z') -{ 3 }→ and(and(not(x'), not(y')), and(not(x''), not(y''))) :|: x' >= 0, z' = 1 + (1 + x' + y') + (1 + x'' + y''), y' >= 0, y'' >= 0, x'' >= 0
not(z') -{ 2 }→ and(and(not(x'), not(y')), 0) :|: x' >= 0, y >= 0, z' = 1 + (1 + x' + y') + y, y' >= 0
not(z') -{ 2 }→ and(0, and(not(x1), not(y1))) :|: y1 >= 0, x1 >= 0, x >= 0, z' = 1 + x + (1 + x1 + y1)
not(z') -{ 0 }→ 0 :|: z' >= 0
and: runtime: O(n1) [z''], size: O(n1) [z''] not: runtime: O(n1) [1 + 5·z'], size: O(1) [0] |